/*
 * @Descripttion: 
 * @version: 
 * @Author: turingchang
 * @Date: 2020-10-09 09:16:00
 * @LastEditors: turingchang
 * @LastEditTime: 2020-12-25 16:32:54
 */

const plugin = require('./config/plugin');

 // 启动自定义
class AppBootHook {

  constructor(app) {
    this.app = app;
  }

  // 配置文件即将加载，这是最后动态修改配置的时机
  async configWillLoad(){
  }  
  // 文件加载完成
  async didLoad() {
    // 请将你的插件项目中 app.beforeStart 中的代码置于此处。
  }
  // 插件启动完毕
  async willReady() {
    // 请将你的应用项目中 app.beforeStart 中的代码置于此处。
  }
  // worker 准备就绪
  async didReady(){
  }
  // 应用启动完成
  async serverDidReady(){
  }
  // 应用即将关闭
  async beforeClose(){
    console.log('<<= app.close =>> ');
    const ctx = await this.app.createAnonymousContext();
    console.log('app.ctx =>> ',ctx);
    if(plugin.sequelize.enable === true){
      if (this.app.config.scheduleHandler.enable === true){
        await ctx.service.job.job.stop({
          stop_type:this.app.enums.job_stop_type.auto.value
        }); 
      }
    }
        
  }

  
  
}

module.exports = AppBootHook;